home *** CD-ROM | disk | FTP | other *** search
- {
- MARK OUELLET
-
- Compile for Protected Mode in BP 7.x}
-
- {$A+,B-,D+,E+,F-,G+,I+,L+,N-,P-,Q-,R-,S+,T-,V+,X+,Y+}
- {$M 16384,0}
-
- type
- MyElement = longint;
-
- const
- Chunk = 65520 div sizeof(MyElement);
- ChunkCnt = 10;
- Limit : longint = Chunk * ChunkCnt - 1;
-
- type
- HeapArrPtr = ^HeapArr;
- HeapArr = array [0..(Chunk - 1)] of MyElement;
- BigHeapArr = array [0..(ChunkCnt - 1)] of HeapArrPtr;
-
- var
- MyHeap : BigHeapArr;
- Index : longint;
-
- begin
- for Index := 0 to ChunkCnt-1 do
- new(MyHeap[Index]);
- for Index := 0 to Limit do
- MyHeap[Index div Chunk]^[Index mod Chunk] := Index;
- for Index := 0 to Limit do
- writeln(Index:10,MyHeap[Index div Chunk]^[Index mod Chunk]:10);
- for Index := 0 to ChunkCnt-1 do
- dispose(MyHeap[Index]);
- end.
-
- {
- I just tested it and it stored 163,800 Longintegers on the heap. The
- nice thing is you could make this into an Object with SET and GET
- methods and treat it as a 163800 element array.
- }